﻿using Newtonsoft.Json;

namespace NotifyCenter.Sender.ResponseModels; // 建议放在单独的响应模型命名空间

/// <summary>
/// 飞书 Tenant Access Token 接口响应模型
/// </summary>
public class FeishuTenantAccessTokenResponse
{
    /// <summary>
    /// 状态码（0 表示成功，非 0 表示失败）
    /// </summary>
    [JsonProperty("code")]
    public int Code { get; set; }

    /// <summary>
    /// Token 过期时间（单位：秒，默认约 2 小时）
    /// </summary>
    [JsonProperty("expire")]
    public int ExpireSeconds { get; set; }

    /// <summary>
    /// 接口提示信息（成功时为 "ok"）
    /// </summary>
    [JsonProperty("msg")]
    public string Message { get; set; } = string.Empty;

    /// <summary>
    /// 飞书租户访问令牌（核心返回值）
    /// </summary>
    [JsonProperty("tenant_access_token")]
    public string TenantAccessToken { get; set; } = string.Empty;

    /// <summary>
    /// 快速判断是否请求成功
    /// </summary>
    [JsonIgnore] // 忽略序列化，仅作为辅助属性
    public bool IsSuccess => Code == 0 && !string.IsNullOrWhiteSpace(TenantAccessToken);
}
